package br.sgc.principal.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DatabaseHelper extends SQLiteOpenHelper 
{
	 private static final String TAG = "CriacaoDasTabelas";
	    
	    private static final String DATABASE_NAME = "sgc";
	    private static final int DATABASE_VERSION = 1;

	    private static final String DATABASE_CREATE =
	        "CREATE TABLE IF NOT EXISTS titles (_id integer primary key autoincrement, "
	        + "isbn text not null, title text not null, " 
	        + "publisher text not null);";
	    
	    private static String CREATE_CLASSE = "CREATE TABLE IF NOT EXISTS IF NOT EXISTS Classe ("+
	    										 "idClasse INT NOT NULL AUTO_INCREMENT,"+
	    										 "nome TEXT NULL,"+
	    										 "estado INT NULL,"+
	    										 "ts TEXT NULL,"+
	    										 "PRIMARY KEY(idClasse)"+
	    									  ");";
	    private static String CREATE_CLIENTE = "CREATE TABLE IF NOT EXISTS IF NOT EXISTS Cliente ("+
												 "idCliente INT NOT NULL AUTO_INCREMENT,"+
												 "nome TEXT NULL,"+
												 "cpf TEXT NULL,"+
												 "telefone TEXT NULL,"+
												 "estado INT NULL,"+
												 "ts TEXT NULL,"+
												 "PRIMARY KEY(idCliente)"+
												");";
	    
	    private static String CREATE_COLABORADOR = "CREATE TABLE IF NOT EXISTS Colaborador ("+
										    		  "idColaborador INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,"+
										    		  "nome TEXT NULL,"+
										    		  "cpf TEXT NULL,"+
										    		  "telefone TEXT NULL,"+
										    		  "estado INT NULL,"+
										    		  "ts TEXT NULL,"+
										    		  "PRIMARY KEY(idColaborador)"+
										    		");";
	    
	    private static String CREATE_COMANDA = "CREATE TABLE IF NOT EXISTS Comanda ("+
												  "idComanda INT NOT NULL AUTO_INCREMENT,"+
												  "estado INT NULL,"+
												  "ts TEXT NULL,"+
												  "PRIMARY KEY(idComanda)"+
												");";
	    		
	    private static String CREATE_LISTA_PRECO = "CREATE TABLE IF NOT EXISTS ListaPreco ("+
													  "idListaPreco INT NOT NULL AUTO_INCREMENT,"+
													  "revisao INT NULL,"+
													  "estado INT NULL,"+
													  "ts TEXT NULL,"+
													  "PRIMARY KEY(idListaPreco)"+
													");";

	    private static String CREATE_LISTA_PRECO_LISTA_PRODUTOS = "CREATE TABLE IF NOT EXISTS ListaPrecoListaProdutos ("+
																	  "ListaPreco_idListaPreco INT NOT NULL,"+
																	  "Produto_idProduto INT NOT NULL,"+
																	  "preco REAL NULL,"+
																	  "estado INT NULL,"+
																	  "ts TEXT NULL,"+
																	  "INDEX ListaPrecoListaProdutos_FKIndex1(Produto_idProduto),"+
																	  "INDEX ListaPrecoListaProdutos_FKIndex2(ListaPreco_idListaPreco)"+
																	");";

	    private static String CREATE_PEDIDO = "CREATE TABLE IF NOT EXISTS Pedido ("+
												  "idPedido INT NOT NULL AUTO_INCREMENT,"+
												  "Comanda_idComanda INT NOT NULL,"+
												  "Cliente_idCliente INT NOT NULL,"+
												  "Colaborador_idColaborador INTEGER UNSIGNED NOT NULL,"+
												  "prioritario INT NULL,"+
												  "observacoes TEXT NULL,"+
												  "estado INT NULL,"+
												  "ts TEXT NULL,"+
												  "PRIMARY KEY(idPedido),"+
												  "INDEX Pedido_FKIndex2(Colaborador_idColaborador),"+
												  "INDEX Pedido_FKIndex3(Cliente_idCliente),"+
												  "INDEX Pedido_FKIndex3(Comanda_idComanda)"+
											  ");";

	    private static String CREATE_PEDIDO_ITEM = "CREATE TABLE IF NOT EXISTS PedidoItem ("+
													  "Pedido_idPedido INT NOT NULL,"+
													  "Produto_idProduto INT NOT NULL,"+
													  "desconto REAL NULL,"+
													  "quantidade INT NOT NULL,"+
													  "estado INT NULL,"+
													  "ts TEXT NULL,"+
													  "INDEX PedidoItem_FKIndex1(Produto_idProduto),"+
													  "INDEX PedidoItem_FKIndex2(Pedido_idPedido)"+
													");";

	    private static String CREATE_PRODUTO = "CREATE TABLE IF NOT EXISTS IF NOT EXISTS IF NOT EXISTS Produto ("+
												  "idProduto INT NOT NULL AUTO_INCREMENT,"+
												  "Classe_idClasse INT NOT NULL,"+
												  "nome TEXT NULL,"+
												  "descricao TEXT NULL,"+
												  "qtdEmbalagem TEXT NULL,"+
												  "imagem TEXT NULL,"+
												  "estado INT NULL,"+
												  "ts TEXT NULL,"+
												  "PRIMARY KEY(idProduto),"+
												  "INDEX Produto_FKIndex1(Classe_idClasse)"+
												");";
	
	
    DatabaseHelper(Context context) 
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        db.execSQL(DATABASE_CREATE);
        
        db.execSQL(CREATE_CLASSE);
        db.execSQL(CREATE_COMANDA);
        db.execSQL(CREATE_COLABORADOR);
        db.execSQL(CREATE_CLIENTE);
        db.execSQL(CREATE_PEDIDO);
        db.execSQL(CREATE_PEDIDO_ITEM);
        db.execSQL(CREATE_LISTA_PRECO);
        db.execSQL(CREATE_LISTA_PRECO_LISTA_PRODUTOS);
        db.execSQL(CREATE_PRODUTO);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, 
    int newVersion) 
    {
        Log.w(TAG, "Upgrading database from version " + oldVersion 
                + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS titles");
        onCreate(db);
    }
} 
